home *** CD-ROM | disk | FTP | other *** search
/ No Fragments Archive 12: Textmags & Docs / nf_archive_12.iso / MAGS / SOURCES / ATARI_SRC.ZIP / atari source / AHDI / TTDRIVER / ACSC / ATARI.ALS < prev    next >
Encoding:
Text File  |  2001-02-09  |  13.2 KB  |  635 lines

  1.     .nlist
  2. ****
  3. ****  This is a PRELIMINARY equates file for the Atari ST;
  4. ****  not all the equates may be here, there may be typos
  5. ****  we haven't caught, and not all the macros for Gemdos
  6. ****  and the BIOS have been defined.
  7. ****
  8. ****  This is only useful for users of the (as yet unreleased)
  9. ****  MADMAC assembler; it won't work with AS68.
  10. ****
  11.     .subttl    'Hardware Locations'
  12. ;
  13. ;    Atari ST hardware locations
  14. ;
  15. memconf        = $ffff8001    ; memory controller
  16. dbaseh        = $ffff8201
  17. dbasel        = $ffff8203    ; display base low, high
  18. vcounthi    = $ffff8205    ; display counter low, medium, high
  19. vcountmid    = $ffff8207
  20. vcountlow    = $ffff8209
  21. syncmode    = $ffff820a    ; video    sync mode
  22. color0        = $ffff8240    ; color registers 0..15
  23. color1        = $ffff8242
  24. color2        = $ffff8244
  25. color3        = $ffff8246
  26. color4        = $ffff8248
  27. color5        = $ffff824a
  28. color6        = $ffff824c
  29. color7        = $ffff824e
  30. color8        = $ffff8250
  31. color9        = $ffff8252
  32. color10        = $ffff8254
  33. color11        = $ffff8256
  34. color12        = $ffff8258
  35. color13        = $ffff825a
  36. color14        = $ffff825c
  37. color15        = $ffff825e
  38. shiftmd        = $ffff8260    ; shifter mode (resolution)
  39.  
  40. ;--- DMA chip
  41. ;
  42. diskctl        = $ffff8604    ; disk controller data access
  43. fifo        = $ffff8606    ; DMA mode control
  44. dmahigh        = $ffff8609    ; DMA base high, medium, low
  45. dmamid        = $ffff860b
  46. dmalow        = $ffff860d
  47.  
  48. ;--- 1770 registers
  49. ;
  50. cmdreg        = $80        ; 1770/FIFO command register select
  51. trkreg        = $82        ; 1770/FIFO track register select
  52. secreg        = $84        ; 1770/FIFO sector register select
  53. datareg        = $86        ; 1770/FIFO data register select
  54.  
  55. ;--- Sound Chip
  56. ;
  57. giselect    = $ffff8800    ; (W) sound chip register select
  58. giread        = $ffff8800    ; (R) sound chip read-data
  59. giwrite        = $ffff8802    ; (W) sound chip write-data
  60. gitoneaf    = 0        ; channel A fine/coarse tune
  61. gitoneac    = 1
  62. gitonebf    = 2        ; channel B
  63. gitonebc    = 3
  64. gitonecf    = 4        ; channel C
  65. gitonecc    = 5
  66. ginoise        = 6        ; noise generator control
  67. gimixer        = 7        ; I/O control/volume control register
  68. giaamp        = 8        ; channel A, B, C amplitude
  69. gibamp        = 9
  70. gicamp        = $a
  71. gifienvlp    = $b        ; envelope period fine, coarse tune
  72. gicrnvlp    = $c
  73. giporta        = $e        ; GI register# for I/O port A
  74. giportb        = $f        ; Centronics output register
  75.  
  76. ;--- Bits in "giporta":
  77. ;
  78. xrts    = 8            ; RTS output
  79. dtr    = $10            ; DTR output
  80. strobe    = $20            ; Centronics strobe output
  81. gpo    = $40            ; "general purpose" output
  82.  
  83. ;--- 68901 (MFP)
  84. ;
  85. mfp    = $fffffa00        ; mfp base
  86. gpip    = mfp+1            ; general purpose I/O
  87. aer    = mfp+3            ; active edge reg
  88. ddr    = mfp+5            ; data direction reg
  89. iera    = mfp+7            ; interrupt enable A & B
  90. ierb    = mfp+9
  91. ipra    = mfp+$b        ; interrupt pending A & B
  92. iprb    = mfp+$d
  93. isra    = mfp+$f        ; interrupt inService A & B
  94. isrb    = mfp+$11
  95. imra    = mfp+$13        ; interrupt mask A & B
  96. imrb    = mfp+$15
  97. vr    = mfp+$17        ; interrupt vector base
  98. tacr    = mfp+$19        ; timer A control
  99. tbcr    = mfp+$1b        ; timer B control
  100. tcdcr    = mfp+$1d        ; timer C & D control
  101. tadr    = mfp+$1f        ; timer A data
  102. tbdr    = mfp+$21        ; timer B data
  103. tcdr    = mfp+$23        ; timer C data
  104. tddr    = mfp+$25        ; timer D data
  105. scr    = mfp+$27        ; sync char
  106. ucr    = mfp+$29        ; USART control reg
  107. rsr    = mfp+$2b        ; receiver status
  108. tsr    = mfp+$2d        ; transmit status
  109. udr    = mfp+$2f        ; USART data
  110.  
  111. ;--- 6850s
  112. ;
  113. keyctl    = $fffffc00        ; keyboard ACIA control
  114. keybd    = $fffffc02        ; keyboard data
  115. midictl    = $fffffc04        ; MIDI ACIA control
  116. midi    = $fffffc06        ; MIDI data
  117.  
  118.     .subttl    'BIOS Variables'
  119. ;
  120. ;    BIOS Variables
  121. ;
  122. etv_timer    =    $400    ; vector for timer interrupt chain
  123. etv_critic    =    $404    ; vector for critical error chain
  124. etv_term    =    $408    ; vector for process terminate
  125. etv_xtra    =    $40c    ; 5 reserved vectors
  126. memvalid    =    $420    ; indicates system state on RESET
  127. memcntlr    =    $424    ; mem controller config nibble
  128. resvalid    =    $426    ; validates 'resvector'
  129. resvector    =    $42a    ; [RESET] bailout vector
  130. phystop        =    $42e    ; physical top of RAM
  131. _membot        =    $432    ; bottom of available memory;
  132. _memtop        =    $436    ; top of available memory;
  133. memval2        =    $43a    ; validates 'memcntlr' and 'memconf'
  134. flock        =    $43e    ; floppy disk/FIFO lock variable
  135. seekrate    =    $440    ; default floppy seek rate
  136. _timr_ms    =    $442    ; system timer calibration (in ms)
  137. _fverify    =    $444    ; nonzero: verify on floppy write
  138. _bootdev    =    $446    ; default boot device
  139. palmode        =    $448    ; nonzero ==> PAL mode
  140. defshiftmd    =    $44a    ; default video rez (first byte)
  141. sshiftmd    =    $44c    ; shadow for 'shiftmd' register
  142. _v_bas_ad    =    $44e    ; pointer to base of screen memory
  143. vblsem        =    $452    ; semaphore to enforce mutex in    vbl
  144. nvbls        =    $454    ; number of deferred vectors
  145. _vblqueue    =    $456    ; pointer to vector of deferred    vfuncs
  146. colorptr    =    $45a    ; pointer to palette setup (or NULL)
  147. screenpt    =    $45e    ; pointer to screen base setup (|NULL)
  148. _vbclock    =    $462    ; count    of unblocked vblanks
  149. _frclock    =    $466    ; count    of every vblank
  150. hdv_init    =    $46a    ; hard disk initialization
  151. swv_vec        =    $46e    ; video change-resolution bailout
  152. hdv_bpb        =    $472    ; disk "get BPB"
  153. hdv_rw        =    $476    ; disk read/write
  154. hdv_boot    =    $47a    ; disk "get boot sector"
  155. hdv_mediach    =    $47e    ; disk media change detect
  156. _cmdload    =    $482    ; nonzero: load COMMAND.COM from boot
  157. conterm        =    $484    ; console/vt52 bitSwitches (%%0..%%2)
  158. trp14ret    =    $486    ; saved return addr for _trap14
  159. criticret    =    $48a    ; saved return addr for _critic
  160. themd        =    $48e    ; memory descriptor (MD)
  161. _____md        =    $49e    ; (more MD)
  162. savptr        =    $4a2    ; pointer to register save area
  163. _nflops        =    $4a6    ; number of disks attached (0, 1+)
  164. con_state    =    $4a8    ; state of conout() parser
  165. save_row    =    $4ac    ; saved row# for cursor X-Y addressing
  166. sav_context    =    $4ae    ; pointer to saved processor context
  167. _bufl        =    $4b2    ; two buffer-list headers
  168. _hz_200        =    $4ba    ; 200hz raw system timer tick
  169. _drvbits    =    $4c2    ; bit vector of "live" block devices
  170. _dskbufp    =    $4c6    ; pointer to common disk buffer
  171. _autopath    =    $4ca    ; pointer to autoexec path (or NULL)
  172. _vbl_list    =    $4ce    ; initial _vblqueue (to $4ee)
  173. _dumpflg    =    $4ee    ; screen-dump flag
  174. _prtabt        =    $4f0    ; printer abort flag
  175. _sysbase    =    $4f2    ; -> base of OS
  176. _shell_p    =    $4f6    ; -> global shell info
  177. end_os        =    $4fa    ; -> end of OS memory usage
  178. exec_os        =    $4fe    ; -> address of shell to exec on startup
  179. scr_dump    =    $502    ; -> screen dump code
  180. prv_lsto    =    $506    ; -> _lstostat()
  181. prv_lst        =    $50a    ; -> _lstout()
  182. prv_auxo    =    $50e    ; -> _auxostat()
  183. prv_aux        =    $512    ; -> _auxout()
  184.  
  185.     .subttl    '"Line A" Equates'
  186. ;
  187. ;    "Line A" Equates
  188. ;
  189. VPLANES    = 0
  190. VWRAP    = 2
  191. CONTRL    = 4
  192. INTIN    = 8
  193. PTSIN    = 12
  194. INTOUT    = 16
  195. PTSOUT    = 20
  196. COLBIT0    = 24
  197. COLBIT1    = 26
  198. COLBIT2    = 28
  199. COLBIT3    = 30
  200. LSTLIN    = 32
  201. LNMASK    = 34
  202. WMODE    = 36
  203. X1    = 38
  204. Y1    = 40
  205. X2    = 42
  206. Y2    = 44
  207. PATPTR    = 46
  208. PATMSK    = 50
  209. MFILL    = 52
  210. CLIP    = 54
  211. XMINCL    = 56
  212. YMINCL    = 58
  213. XMAXCL    = 60
  214. YMAXCL    = 62
  215. XDDA    = 64
  216. DDAINC    = 66
  217. SCALDIR    = 68
  218. MONO    = 70
  219. SRCX    = 72
  220. SRCY    = 74
  221. DSTX    = 76
  222. DSTY    = 78
  223. DELX    = 80
  224. DELY    = 82
  225. FBASE    = 84
  226. FWIDTH    = 88
  227. STYLE    = 90
  228. LITEMSK    = 92
  229. SKEWMSK    = 94
  230. WEIGHT    = 96
  231. ROFF    = 98
  232. LOFF    = 100
  233. SCALE    = 102
  234. CHUP    = 104
  235. TEXTFG    = 106
  236. SCRTCHP    = 108
  237. SCRPT2    = 112
  238. TEXTBG    = 114
  239. COPYTRAN = 116
  240. SEEDABORT = 118
  241.  
  242.     .subttl    '"Line A" Macros'
  243. ;
  244. ;    "Line A" macros
  245. ;
  246. .macro A_init
  247.     dc.w    $a000
  248. .endm
  249. .macro A_putpix
  250.     dc.w    $a001
  251. .endm
  252. .macro A_getpix
  253.     dc.w    $a002
  254. .endm
  255. .macro A_abline
  256.     dc.w    $a003
  257. .endm
  258. .macro A_habline
  259.     dc.w    $a004
  260. .endm
  261. .macro A_rectfill
  262.     dc.w    $a005
  263. .endm
  264. .macro A_polyfill
  265.     dc.w    $a006
  266. .endm
  267. .macro A_bitblt
  268.     dc.w    $a007
  269. .endm
  270. .macro A_textblt
  271.     dc.w    $a008
  272. .endm
  273. .macro A_showcur
  274.     dc.w    $a009
  275. .endm
  276. .macro A_hidecur
  277.     dc.w    $a00a
  278. .endm
  279. .macro A_chgcur
  280.     dc.w    $a00b
  281. .endm
  282. .macro A_drsprite
  283.     dc.w    $a00c
  284. .endm
  285. .macro A_unsprite
  286.     dc.w    $a00d
  287. .endm
  288. .macro A_copyrstr
  289.     dc.w    $a00e
  290. .endm
  291. .macro A_seedfill
  292.     dc.w    $a00f
  293. .endm
  294.  
  295.     .subttl 'Operating System Macros'
  296.  
  297. .macro Bios trpno, clean        ; trap to BIOS
  298.     move.w    #\trpno,-(sp)
  299.     trap    #13
  300.     .if \clean <= 8
  301.     addq    #\clean,sp
  302.     .else
  303.     add.w    #\clean,sp
  304.     .endif
  305. .endm
  306.  
  307. .macro Xbios trpno, clean        ; trap to XBIOS
  308.     move.w    #\trpno,-(sp)
  309.     trap    #14
  310.     .if \clean <= 8
  311.     addq    #\clean,sp
  312.     .else
  313.     add.w    #\clean,sp
  314.     .endif
  315. .endm
  316.  
  317. .macro Gemdos trpno, clean        ; trap to GEMDOS
  318.     move.w    #\trpno,-(sp)
  319.     trap    #1
  320.     .if \clean <= 8
  321.     addq    #\clean,sp
  322.     .else
  323.     add.w    #\clean,sp
  324.     .endif
  325. .endm
  326.  
  327. ;
  328. ;    String "foobar"        (push onto stack)
  329. ;    String "foobar",a0        move address of string somewhere
  330. ;
  331. .macro String str,loc
  332.     .if \?loc
  333.     move.l    #.\~,\loc
  334.     .else
  335.     pea    .\~
  336.     .endif
  337.     .data
  338. .\~:    dc.b    \str,0
  339.     .text
  340. .endm
  341.  
  342.     .subttl    'Bios Traps'
  343.  
  344. ;--- Character Device Numbers
  345. ;
  346. PRT = 0        ; printer
  347. AUX = 1        ; RS-232
  348. CON = 2        ; console (vt-52 emulator)
  349. MIDI = 3    ; MIDI port
  350. IKBD = 4    ; ikbd (out only)
  351. RAWCON = 5    ; console (raw characters)
  352.  
  353. .macro Getmbp ptr
  354.     move.l    \ptr,-(sp)
  355.     Bios 0,4
  356. .endm
  357. .macro Bconstat dev
  358.     move.w    \dev,-(sp)
  359.     Bios 1,4
  360. .endm
  361. .macro Bconin dev
  362.     move.w    \dev,-(sp)
  363.     Bios 2,4
  364. .endm
  365. .macro Bconout dev, char
  366.     move.w    \char,-(sp)
  367.     move.w    \dev,-(sp)
  368.     Bios 3,6
  369. .endm
  370. .macro Rwabs rwflag, buf, count, recno, dev
  371.     move.w    \dev,-(sp)
  372.     move.w    \recno,-(sp)
  373.     move.w    \count,-(sp)
  374.     move.l    \buf,-(sp)
  375.     move.w    \rwflag,-(sp)
  376.     Bios 4,14
  377. .endm
  378. .macro Setexc vecnum, vec
  379.     move.l    \vec,-(sp)
  380.     move.w    \vecnum,-(sp)
  381.     Bios 5,8
  382. .endm
  383. .macro Tickcal
  384.     Bios 6,2
  385. .endm
  386. .macro Getbpb devno
  387.     move.w    \devno,-(sp)
  388.     Bios 7,4
  389. .endm
  390. .macro Bcostat devno
  391.     move.w \devno,-(sp)
  392.     Bios 8,4
  393. .endm
  394. .macro Mediach devno
  395.     move.w \devno,-(sp)
  396.     Bios 9,4
  397. .endm
  398. .macro Drvmap
  399.     Bios 10,2
  400. .endm
  401. .macro Kbshift mode
  402.     move.w    \mode,-(sp)
  403.     Bios 11,4
  404. .endm
  405.  
  406.     .subttl    'Extended BIOS Traps'
  407. .macro Initmous type, param, vec
  408.     move.l    \vec,-(sp)
  409.     move.l    \param,-(sp)
  410.     move.w    \type,-(sp)
  411.     Xbios 0,12
  412. .endm
  413. .macro Physbase
  414.     Xbios 2,2
  415. .endm
  416. .macro Logbase
  417.     Xbios 3,2
  418. .endm
  419. .macro Getrez
  420.     Xbios 4,2
  421. .endm
  422. .macro Setscreen logloc, physloc, rez
  423.     move.w    \rez,-(sp)
  424.     move.l    \physloc,-(sp)
  425.     move.l    \logloc,-(sp)
  426.     Xbios    5,12
  427. .endm
  428. .macro Setpallete ptr
  429.     move.l    \ptr,-(sp)
  430.     Xbios    6,6
  431. .endm
  432. .macro Setcolor colnum, color
  433.     move.w    \color,-(sp)
  434.     move.w    \colnum,-(sp)
  435.     Xbios    7,6
  436. .endm
  437. .macro Floprd buf, devno, sectno, trackno, sideno, count
  438.     move.w    \count,-(sp)
  439.     move.w    \sideno,-(sp)
  440.     move.w    \trackno,-(sp)
  441.     move.w    \sectno,-(sp)
  442.     move.w    \devno,-(sp)
  443.     clr.l    -(sp)    ; (filler)
  444.     move.l    \buf,-(sp)
  445.     Xbios 8,20
  446. .endm
  447. .macro Flopwr buf, devno, sectno, trackno, sideno, count
  448.     move.w    \count,-(sp)
  449.     move.w    \sideno,-(sp)
  450.     move.w    \trackno,-(sp)
  451.     move.w    \sectno,-(sp)
  452.     move.w    \devno,-(sp)
  453.     clr.l    -(sp)    ; (filler)
  454.     move.l    \buf,-(sp)
  455.     Xbios 9,20
  456. .endm
  457. .macro Flopfmt buf,devno,spt,trackno,sideno,interlv,magic,virgin
  458.     move.w    \virgin,-(sp)
  459.     move.l    \magic,-(sp)
  460.     move.w    \interlv,-(sp)
  461.     move.w    \sideno,-(sp)
  462.     move.w    \trackno,-(sp)
  463.     move.w    \spt,-(sp)
  464.     move.w    \devno,-(sp)
  465.     clr.l    -(sp)    ; (filler)
  466.     move.l    \buf,-(sp)
  467.     Xbios $a,26
  468. .endm
  469. .macro Midiws cnt1,ptr
  470.     move.l    \ptr,-(sp)
  471.     move.w    \cnt1,-(sp)
  472.     Xbios $c,8
  473. .endm
  474. .macro Random
  475.     Xbios $11,2
  476. .endm
  477. .macro Protobt buf,serialno,disktype,execflag
  478.     move.w    \execflag,-(sp)
  479.     move.w    \disktype,-(sp)
  480.     move.l    \serialno,-(sp)
  481.     move.l    \buf,-(sp)
  482.     Xbios $12,14
  483. .endm
  484. .macro Flopver buf, devno, sectno, trackno, sideno, count
  485.     move.w    \count,-(sp)
  486.     move.w    \sideno,-(sp)
  487.     move.w    \trackno,-(sp)
  488.     move.w    \sectno,-(sp)
  489.     move.w    \devno,-(sp)
  490.     clr.l    -(sp)    ; (filler)
  491.     move.l    \buf,-(sp)
  492.     Xbios $13,20
  493. .endm
  494.  
  495. CURS_HIDE    =    0
  496. CURS_SHOW    =    1
  497. CURS_BLINK    =    2
  498. CURS_NOBLINK    =    3
  499. CURS_SETRATE    =    4
  500. CURS_GETRATE    =    5
  501.  
  502. .macro Cursconf func,op
  503.     move.w    \op,-(sp)
  504.     move.w    \func,-(sp)
  505.     Xbios $15,6
  506. .endm
  507. .macro Kbdvbase
  508.     Xbios $22,2
  509. .endm
  510. .macro Supexec where
  511.     move.l    \where,-(sp)
  512.     Xbios $26,6
  513. .endm
  514.     .subttl    'Gemdos Traps'
  515. .macro Dsetdrv drive
  516.     move.w    \drive,-(sp)
  517.     Gemdos $e,4
  518. .endm
  519. .macro Pterm0
  520.     clr.w    -(sp)
  521.     trap    #1
  522.     illegal
  523. .endm
  524. .macro Pterm code
  525.     .if \?code
  526.     move.w    \code,-(sp)
  527.     .else
  528.     clr.w    -(sp)
  529.     .endif
  530.     move.w    #$4c,-(sp)
  531.     trap    #1
  532.     illegal
  533. .endm
  534. .macro Super
  535.     clr.l    -(sp)
  536.     move.w    #$20,-(sp)
  537.     trap    #1
  538.     addq    #6,sp
  539.     move.l    d0,-(sp)
  540.     move.w    #$20,-(sp)
  541. .endm
  542. .macro User
  543.     trap    #1
  544.     addq    #6,sp
  545. .endm
  546. .macro Puts string
  547.     move.l    \string,-(sp)
  548.     Gemdos 9,6
  549. .endm
  550. .macro Fopen file, mode
  551.     move.w    \mode,-(sp)
  552.     move.l    \file,-(sp)
  553.     Gemdos $3d,8
  554. .endm
  555. .macro Fcreate file, mode
  556.     move.w    \mode,-(sp)
  557.     move.l    \file,-(sp)
  558.     Gemdos $3c,8
  559. .endm
  560. .macro Fread handle, count, buf
  561.     move.l    \buf,-(sp)
  562.     move.l    \count,-(sp)
  563.     move.w    \handle,-(sp)
  564.     Gemdos $3f,12
  565. .endm
  566. .macro Fwrite handle, count, buf
  567.     move.l    \buf,-(sp)
  568.     move.l    \count,-(sp)
  569.     move.w    \handle,-(sp)
  570.     Gemdos $40,12
  571. .endm
  572. .macro Fclose handle
  573.     move.w    \handle,-(sp)
  574.     Gemdos $3e,4
  575. .endm
  576. .macro Fdelete file
  577.     move.l    \file,-(sp)
  578.     Gemdos $41,6
  579. .endm
  580. .macro Fseek offset, handle, mode
  581.     move.w    \mode,-(sp)
  582.     move.w    \handle,-(sp)
  583.     move.l    \offset,-(sp)
  584.     Gemdos $42,10
  585. .endm
  586. .macro Fsetdta addr
  587.     move.l    \addr,-(sp)
  588.     Gemdos $1a,6
  589. .endm
  590. .macro Ptermres count, retcode
  591.     move.w    \retcode,-(sp)
  592.     move.l    \count,-(sp)
  593.     Gemdos $31,8
  594. .endm
  595. .macro Mshrink block, newsiz
  596.     move.l    \newsiz,-(sp)
  597.     move.l    \block,-(sp)
  598.     clr.w    -(sp)
  599.     Gemdos $4a,12
  600. .endm
  601. .macro Pexec mode, p1, p2, p3
  602.     move.l    \p3,-(sp)
  603.     move.l    \p2,-(sp)
  604.     move.l    \p1,-(sp)
  605.     move.w    \mode,-(sp)
  606.     Gemdos $4b,16
  607. .endm
  608. .macro Fsfirst fspec, attr
  609.     move.w    \attr,-(sp)
  610.     move.l    \fspec,-(sp)
  611.     Gemdos $4e,8
  612. .endm
  613. .macro Fsnext
  614.     Gemdos $4f,2
  615. .endm
  616.  
  617.     .subttl 'Structures'
  618. ;
  619. ;    Basepage Format
  620. ;
  621.     .abs
  622. Plowtpa:    ds.l    1
  623. Phitpa:        ds.l    1
  624. Ptbase:        ds.l    1
  625. Ptlen:        ds.l    1
  626. Pdbase:        ds.l    1
  627. Pdlen:        ds.l    1
  628. Pbbase:        ds.l    1
  629. Pblen:        ds.l    1
  630. Pxdta:        ds.l    1
  631. Pparent:    ds.l    1
  632.     .TEXT
  633.     .eject
  634.     .list
  635.